/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package es.upsam.modelo;

import es.upsam.modelo.dao.persistencia;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author carmas
 */
public class Proyecto {
    int id;
    String nombre;
    String descripcion;
    int id_admin;

    public int getId_admin() {
        return id_admin;
    }

    public void setId_admin(int id_admin) {
        this.id_admin = id_admin;
    }

    public int getId_foro() {
        return id_foro;
    }

    public void setId_foro(int id_foro) {
        this.id_foro = id_foro;
    }
    int id_foro;

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

   public int persistir(){
        int i;
        persistencia p = new persistencia();

        String query ="INSERT INTO APP.PROYECTOS (ID,NOMBRE,DESCRIPCION,ID_ADMIN,ID_FORO) ";
               query+="values ((SELECT max(ID)+1 FROM APP.PROYECTOS),'";
               query+=this.nombre +"','"+ this.descripcion +"',"+ this.id_admin +","+this.id_foro+")";

        i = p.ejecutarActualizacion(query);
        p.Cerrar();
        return i;
    }


    public void consultarPorId (int id){
       try {
            String query = "select ID,NOMBRE,DESCRIPCION,ID_ADMIN,ID_FORO from APP.PROYECTOS where ID="+id;
            persistencia p = new persistencia();
            ResultSet rs = p.ejecutarConsulta(query);
            while (rs.next()) {
                this.id = rs.getInt("ID");
                this.nombre = rs.getString("NOMBRE");
                this.descripcion = rs.getString("DESCRIPCION");
                this.id_admin = rs.getInt("ID_ADMIN");
                this.id_foro = rs.getInt("ID_FORO");
            }
            rs.close();
            p.Cerrar();
        } catch (SQLException ex) {
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


    public void consultarPorNombre(String nombre){
       try {
            String query = "select ID,NOMBRE,DESCRIPCION,ID_ADMIN,ID_FORO from APP.PROYECTOS where NOMBRE like '%"+nombre+"%'";
            persistencia p = new persistencia();
            ResultSet rs = p.ejecutarConsulta(query);
            while (rs.next()) {
                this.id = rs.getInt("ID");
                this.nombre = rs.getString("NOMBRE");
                this.descripcion = rs.getString("DESCRIPCION");
                this.id_admin = rs.getInt("ID_ADMIN");
                this.id_foro = rs.getInt("ID_FORO");
            }
            rs.close();
            p.Cerrar();
        } catch (SQLException ex) {
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

     public void consultarPorDescripcion(String descripcion){
       try {
            String query = "select ID,NOMBRE,DESCRIPCION,ID_ADMIN,ID_FORO from APP.PROYECTOS where DESCRIPCION like '%"+nombre+"'%";
            persistencia p = new persistencia();
            ResultSet rs = p.ejecutarConsulta(query);
            while (rs.next()) {
                this.id = rs.getInt("ID");
                this.nombre = rs.getString("NOMBRE");
                this.descripcion = rs.getString("DESCRIPCION");
                this.id_admin = rs.getInt("ID_ADMIN");
                this.id_foro = rs.getInt("ID_FORO");
            }
            rs.close();
            p.Cerrar();
        } catch (SQLException ex) {
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void consultarPorIdAdmin(int idAdmin){
       try {
            String query = "select ID,NOMBRE,DESCRIPCION,ID_ADMIN,ID_FORO from APP.PROYECTOS where ID_ADMIN ="+idAdmin;
            persistencia p = new persistencia();
            ResultSet rs = p.ejecutarConsulta(query);
            while (rs.next()) {
                this.id = rs.getInt("ID");
                this.nombre = rs.getString("NOMBRE");
                this.descripcion = rs.getString("DESCRIPCION");
                this.id_admin = rs.getInt("ID_ADMIN");
                this.id_foro = rs.getInt("ID_FORO");
            }
            rs.close();
            p.Cerrar();
        } catch (SQLException ex) {
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void consultarPorIdForo(int idForo){
       try {
            String query = "select ID,NOMBRE,DESCRIPCION,ID_ADMIN,ID_FORO from APP.PROYECTOS where ID_FORO ="+idForo;
            persistencia p = new persistencia();
            ResultSet rs = p.ejecutarConsulta(query);
            while (rs.next()) {
                this.id = rs.getInt("ID");
                this.nombre = rs.getString("NOMBRE");
                this.descripcion = rs.getString("DESCRIPCION");
                this.id_admin = rs.getInt("ID_ADMIN");
                this.id_foro = rs.getInt("ID_FORO");
            }
            rs.close();
            p.Cerrar();
        } catch (SQLException ex) {
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public int consultarNumProyectos(){
       int n = 0;
       
       try {
            String query = "select count(ID) as numero from APP.PROYECTOS";
            persistencia p = new persistencia();
            ResultSet rs = p.ejecutarConsulta(query);
            n = rs.getInt("numero");

            rs.close();
            p.Cerrar();
        } catch (SQLException ex) {
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
     return n;
    }

    public boolean isEmpty() {
        if (this.nombre==null) return true;
        else return false;
    }
}